查看原文
其他

数据治理|Stata如何直连关系型数据库

企研数据 数据Seminar 2022-12-31

我们将在数据治理板块中推出一系列原创推文,帮助读者搭建一个完整的社科研究数据治理软硬件体系。该板块将涉及以下几个模块:

  1. 计算机基础知识

(1)社科研究软硬件体系搭建——虚拟化技术概述与实践

  1. 编程基础

(1)数据治理 | 带你学Python之 环境搭建与基础数据类型介绍篇

(2)数据治理 | 带你学Python之控制结构与函数

(3)数据治理 | 带你学Python之面向对象编程基础

(4)数据治理 | 还在用Excel做数据分析呢?SQL它不香吗

(5)数据治理 | 普通社科人如何学习SQL?一篇文章给您说明白

  1. 数据采集
  2. 数据存储

(1)安装篇 数据治理 | 遇到海量数据stata卡死怎么办?这一数据处理利器要掌握

(2)管理篇 数据治理 | 多人协同处理数据担心不安全?学会这一招,轻松管理你的数据团队

(3)数据导入数据治理 | “把大象装进冰箱的第二步”:海量微观数据如何“塞进”数据库?

(4)本期内容:数据治理|Stata如何直连关系型数据库

  1. 数据清洗
  2. 数据实验室搭建

Part1前言

在前面的系列推文中,我们已经讲解了MySQL数据库的安装,以及如何把数据导入MySQL

本文我们主要介绍如何让Stata读取MySQL数据库中的数据,这样做的好处有以下几点:

  1. Stata载入的数据量不能超过内存大小。如果处理的数据量非常大,可以先把数据导入数据库,然后使用Stata调用部分数据。
  2. Stata处理完毕的数据可以非常方便地保存到数据库中。
  3. 可以通过网络访问MySQL数据库,将处理好的数据共享给其他用户调用,避免了数据重复拷贝。

Part2准备工作

1. 安装 ODBC

Stata需要通过ODBC驱动与MySQL数据库连接。ODBC即开放数据库连接(Open Database Connectivity),它可以为各类数据库开放一个对外交流的接口,使得各类应用程序(如Stata、excel)可以通过SQL语句对数据库内容进行操作。

安装、设置完MySQL 及MySQL ODBC驱动后,在Stata中可以使用odbc命令通过ODBC获取 、写入和查看数据库数据。MySQL数据库的安装可以看早期的推文。本文我们演示如何安装MySQL/ODBC驱动。

下载地址:https://dev.mysql.com/downloads/connector/odbc/ ,选择好操作系统相关参数,选择【MSI Installer】下载。

下载完毕后,双击【mysql-connector-odbc-8.0.28-winx64.msi】,出现如下安装界面,点击【Next】。

同意安装协议。

选择【Typical】安装类型,点击【Next】。
最后点击【Install】,开始安装。
片刻后,安装完毕,点击【Finish】退出安装界面。

2. 配置 ODBC

在【开始菜单】中,找到【Windows管理工具】下的【ODBC 数据源(64位) 】。

选择【用户DSN】或者【系统DSN】进行添加,我们演示添加【系统DSN】,在窗口右侧点击【添加】。
在【创建新数据源】弹窗中,选择 【MySQL ODBC 8.0 Unicode Driver】,然后点击【完成】。
配置连接参数。
配置完毕后,点击【确定】退出。

Part3Stata 读取 MySQL 数据

1. 使用图形化界面

点击【文件】,【导入】,【ODBC数据源】。

在【从ODBC数据源导入数据】弹窗中,进行配置,最后点击【确定】。
可以在【数据编辑器】中查看导入的数据。

2.使用stata命令

查看已经设置的数据源。

odbc list 
 
读取数据,并查看读入的数据。
odbc load price="price" mpg="mpg", table("auto") clear lowercase noquote bigintasdouble

desc
 

Part4Stata 数据写入 MySQL

首先,我们在Stata中准备一个样例数据用于演示,我们使用 【bplong.dta】这个内置的数据集。

sysuse bplong.dta

数据从stata导入mysql,之前需要在mysql中事先创建一个空表,可以使用如下语句:

odbc exec("create table bplong (`patient` int(11), `sex` varchar(10),`agegrp` varchar(10), `bp` int(11));"), dsn("hello_stata_mysql")
可以在stata中查看建表的情况。
odbc query "hello_stata_mysql"
 
导出数据到mysql。
odbc insert patient sex agegrp bp, table("bplong")
可以在mysql中看到数据已经导入成功。

Part5总结

在研究过程中需要处理大数据量的时候,如果计算机的内存不足,可以先把数据导入数据库中使用SQL进行处理,或者分批传入到stata中处理。

更多Stata与数据库交互的命令,可以在stata中运行 help odbc 查看。




星标⭐我们不迷路!想要文章及时到,文末“在看”少不了!


点击搜索你感兴趣的内容吧

往期推荐


数据可视化 | 快来看这6款常用的动态数据可视化工具

软件应用 | Stata: 外部命令的搜索、安装与使用

软件应用 | findname——想要什么找什么

统计计量 | 在实证分析中,该如何解读“调节效应”或“交叉项”?(更新版)

统计计量 | 知乎热议:经济学专业博士如何学好高级计量?

数据治理 | 普通社科人如何学习SQL?一篇文章给您说明白

数据可视化 | 数据可视化,看这一篇就够了





数据Seminar




这里是大数据、分析技术与学术研究的三叉路口


文 | 陈煌杰


    欢迎扫描👇二维码添加关注    

点击下方“阅读全文”了解更多

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存